home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / tree / DefaultTreeCellRenderer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  4.9 KB  |  219 lines

  1. package javax.swing.tree;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Font;
  7. import java.awt.Graphics;
  8. import javax.swing.Icon;
  9. import javax.swing.JComponent;
  10. import javax.swing.JLabel;
  11. import javax.swing.JTree;
  12. import javax.swing.UIManager;
  13. import javax.swing.plaf.ColorUIResource;
  14. import javax.swing.plaf.FontUIResource;
  15.  
  16. public class DefaultTreeCellRenderer extends JLabel implements TreeCellRenderer {
  17.    protected boolean selected;
  18.    private boolean hasFocus;
  19.    private boolean drawsFocusBorderAroundIcon;
  20.    protected transient Icon closedIcon;
  21.    protected transient Icon leafIcon;
  22.    protected transient Icon openIcon;
  23.    protected Color textSelectionColor;
  24.    protected Color textNonSelectionColor;
  25.    protected Color backgroundSelectionColor;
  26.    protected Color backgroundNonSelectionColor;
  27.    protected Color borderSelectionColor;
  28.  
  29.    public DefaultTreeCellRenderer() {
  30.       ((JLabel)this).setHorizontalAlignment(2);
  31.       this.setLeafIcon(UIManager.getIcon("Tree.leafIcon"));
  32.       this.setClosedIcon(UIManager.getIcon("Tree.closedIcon"));
  33.       this.setOpenIcon(UIManager.getIcon("Tree.openIcon"));
  34.       this.setTextSelectionColor(UIManager.getColor("Tree.selectionForeground"));
  35.       this.setTextNonSelectionColor(UIManager.getColor("Tree.textForeground"));
  36.       this.setBackgroundSelectionColor(UIManager.getColor("Tree.selectionBackground"));
  37.       this.setBackgroundNonSelectionColor(UIManager.getColor("Tree.textBackground"));
  38.       this.setBorderSelectionColor(UIManager.getColor("Tree.selectionBorderColor"));
  39.       Object var1 = UIManager.get("Tree.drawsFocusBorderAroundIcon");
  40.       this.drawsFocusBorderAroundIcon = var1 != null && (Boolean)var1;
  41.    }
  42.  
  43.    public Color getBackgroundNonSelectionColor() {
  44.       return this.backgroundNonSelectionColor;
  45.    }
  46.  
  47.    public Color getBackgroundSelectionColor() {
  48.       return this.backgroundSelectionColor;
  49.    }
  50.  
  51.    public Color getBorderSelectionColor() {
  52.       return this.borderSelectionColor;
  53.    }
  54.  
  55.    public Icon getClosedIcon() {
  56.       return this.closedIcon;
  57.    }
  58.  
  59.    public Icon getDefaultClosedIcon() {
  60.       return UIManager.getIcon("Tree.closedIcon");
  61.    }
  62.  
  63.    public Icon getDefaultLeafIcon() {
  64.       return UIManager.getIcon("Tree.leafIcon");
  65.    }
  66.  
  67.    public Icon getDefaultOpenIcon() {
  68.       return UIManager.getIcon("Tree.openIcon");
  69.    }
  70.  
  71.    private int getLabelStart() {
  72.       Icon var1 = ((JLabel)this).getIcon();
  73.       return var1 != null && ((JLabel)this).getText() != null ? var1.getIconWidth() + Math.max(0, ((JLabel)this).getIconTextGap() - 1) : 0;
  74.    }
  75.  
  76.    public Icon getLeafIcon() {
  77.       return this.leafIcon;
  78.    }
  79.  
  80.    public Icon getOpenIcon() {
  81.       return this.openIcon;
  82.    }
  83.  
  84.    public Dimension getPreferredSize() {
  85.       Dimension var1 = super.getPreferredSize();
  86.       if (var1 != null) {
  87.          var1 = new Dimension(var1.width + 3, var1.height);
  88.       }
  89.  
  90.       return var1;
  91.    }
  92.  
  93.    public Color getTextNonSelectionColor() {
  94.       return this.textNonSelectionColor;
  95.    }
  96.  
  97.    public Color getTextSelectionColor() {
  98.       return this.textSelectionColor;
  99.    }
  100.  
  101.    public Component getTreeCellRendererComponent(JTree var1, Object var2, boolean var3, boolean var4, boolean var5, int var6, boolean var7) {
  102.       String var8 = var1.convertValueToText(var2, var3, var4, var5, var6, var7);
  103.       this.hasFocus = var7;
  104.       ((JLabel)this).setText(var8);
  105.       if (var3) {
  106.          ((JComponent)this).setForeground(this.getTextSelectionColor());
  107.       } else {
  108.          ((JComponent)this).setForeground(this.getTextNonSelectionColor());
  109.       }
  110.  
  111.       if (!((Component)var1).isEnabled()) {
  112.          ((JComponent)this).setEnabled(false);
  113.          if (var5) {
  114.             ((JLabel)this).setDisabledIcon(this.getLeafIcon());
  115.          } else if (var4) {
  116.             ((JLabel)this).setDisabledIcon(this.getOpenIcon());
  117.          } else {
  118.             ((JLabel)this).setDisabledIcon(this.getClosedIcon());
  119.          }
  120.       } else {
  121.          ((JComponent)this).setEnabled(true);
  122.          if (var5) {
  123.             ((JLabel)this).setIcon(this.getLeafIcon());
  124.          } else if (var4) {
  125.             ((JLabel)this).setIcon(this.getOpenIcon());
  126.          } else {
  127.             ((JLabel)this).setIcon(this.getClosedIcon());
  128.          }
  129.       }
  130.  
  131.       this.selected = var3;
  132.       return this;
  133.    }
  134.  
  135.    public void paint(Graphics var1) {
  136.       Color var2;
  137.       if (this.selected) {
  138.          var2 = this.getBackgroundSelectionColor();
  139.       } else {
  140.          var2 = this.getBackgroundNonSelectionColor();
  141.          if (var2 == null) {
  142.             var2 = ((Component)this).getBackground();
  143.          }
  144.       }
  145.  
  146.       int var3 = -1;
  147.       if (var2 != null) {
  148.          Icon var4 = ((JLabel)this).getIcon();
  149.          var3 = this.getLabelStart();
  150.          var1.setColor(var2);
  151.          var1.fillRect(var3, 0, ((JComponent)this).getWidth() - 1 - var3, ((JComponent)this).getHeight());
  152.       }
  153.  
  154.       if (this.hasFocus) {
  155.          if (this.drawsFocusBorderAroundIcon) {
  156.             var3 = 0;
  157.          } else if (var3 == -1) {
  158.             var3 = this.getLabelStart();
  159.          }
  160.  
  161.          Color var5 = this.getBorderSelectionColor();
  162.          if (var5 != null) {
  163.             var1.setColor(var5);
  164.             var1.drawRect(var3, 0, ((JComponent)this).getWidth() - 1 - var3, ((JComponent)this).getHeight() - 1);
  165.          }
  166.       }
  167.  
  168.       super.paint(var1);
  169.    }
  170.  
  171.    public void setBackground(Color var1) {
  172.       if (var1 instanceof ColorUIResource) {
  173.          var1 = null;
  174.       }
  175.  
  176.       super.setBackground(var1);
  177.    }
  178.  
  179.    public void setBackgroundNonSelectionColor(Color var1) {
  180.       this.backgroundNonSelectionColor = var1;
  181.    }
  182.  
  183.    public void setBackgroundSelectionColor(Color var1) {
  184.       this.backgroundSelectionColor = var1;
  185.    }
  186.  
  187.    public void setBorderSelectionColor(Color var1) {
  188.       this.borderSelectionColor = var1;
  189.    }
  190.  
  191.    public void setClosedIcon(Icon var1) {
  192.       this.closedIcon = var1;
  193.    }
  194.  
  195.    public void setFont(Font var1) {
  196.       if (var1 instanceof FontUIResource) {
  197.          var1 = null;
  198.       }
  199.  
  200.       super.setFont(var1);
  201.    }
  202.  
  203.    public void setLeafIcon(Icon var1) {
  204.       this.leafIcon = var1;
  205.    }
  206.  
  207.    public void setOpenIcon(Icon var1) {
  208.       this.openIcon = var1;
  209.    }
  210.  
  211.    public void setTextNonSelectionColor(Color var1) {
  212.       this.textNonSelectionColor = var1;
  213.    }
  214.  
  215.    public void setTextSelectionColor(Color var1) {
  216.       this.textSelectionColor = var1;
  217.    }
  218. }
  219.